package com.atguigu.distributed.lock.leecode.array;

import java.util.List;

/**
 * 力扣中等624数组列表中的最大距离
 * 给定 m 个数组，每个数组都已经按照升序排好序了。现在你需要从两个不同的数组中选择两个整数（每个数组选一个）并且计算它们的距离。两个整数 a 和 b 之间的距离定义为它们差的绝对值 |a-b| 。你的任务就是去找到最大距离
 *
 * 示例 1：
 *
 * 输入：
 * [[1,2,3],
 *  [4,5],
 *  [1,2,3]]
 * 输出： 4
 * 解释：
 * 一种得到答案 4 的方法是从第一个数组或者第三个数组中选择 1，同时从第二个数组中选择 5 。
 */
public class MaxDistance {
    public int maxDistance(List<List<Integer>> arrays) {
        int res = 0;
        int n = arrays.get(0).size();
        int min_val = arrays.get(0).get(0);
        int max_val = arrays.get(0).get(arrays.get(0).size()-1);
        for(int i = 1;i < arrays.size();i++){
            n = arrays.get(i).size();
            res = Math.max(res,Math.max(Math.abs(arrays.get(i).get(n-1)-min_val),Math.abs(max_val-arrays.get(i).get(0))));
            min_val = Math.min(min_val,arrays.get(i).get(0));
            max_val = Math.max(max_val,arrays.get(i).get(n-1));
        }
        return res;

    }

}
